summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJedrzej Nowacki <jedrzej.nowacki@nokia.com>2010-12-07 11:56:42 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-01-09 13:06:23 +0100
commit8e40e3c82e126e6c24644dd8d03fb23e4e98b71a (patch)
tree3034eba4ec8588a6295af19e2763eebda2b1bfa8
parentb9a880c228dc5049c4dd03839f052e91686a0dab (diff)
[V8] QtScript/V8: Add new v8 api to check if a value is an error.
New function v8::Value::IsError was created. This API is experimental and added only for the purposes of our research. Change-Id: Ie9c75681f956a43944c95737b8a2fb57a699df97 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
-rw-r--r--src/3rdparty/v8/include/v8.h5
-rw-r--r--src/3rdparty/v8/src/api.cc6
-rw-r--r--src/3rdparty/v8/src/heap.h1
3 files changed, 12 insertions, 0 deletions
diff --git a/src/3rdparty/v8/include/v8.h b/src/3rdparty/v8/include/v8.h
index 5f39a8d..f95e8b9 100644
--- a/src/3rdparty/v8/include/v8.h
+++ b/src/3rdparty/v8/include/v8.h
@@ -991,6 +991,11 @@ class Value : public Data {
*/
V8EXPORT bool IsRegExp() const;
+ /**
+ * Returns true if this value is an Error.
+ */
+ V8EXPORT bool IsError() const;
+
V8EXPORT Local<Boolean> ToBoolean() const;
V8EXPORT Local<Number> ToNumber() const;
V8EXPORT Local<String> ToString() const;
diff --git a/src/3rdparty/v8/src/api.cc b/src/3rdparty/v8/src/api.cc
index feeac6f..ea3f59e 100644
--- a/src/3rdparty/v8/src/api.cc
+++ b/src/3rdparty/v8/src/api.cc
@@ -2424,6 +2424,12 @@ bool Value::IsRegExp() const {
return obj->IsJSRegExp();
}
+bool Value::IsError() const {
+ if (IsDeadCheck(i::Isolate::Current(), "v8::Value::IsError()")) return false;
+ i::Handle<i::Object> obj = Utils::OpenHandle(this);
+ return obj->HasSpecificClassOf(HEAP->Error_symbol());
+}
+
Local<String> Value::ToString() const {
i::Handle<i::Object> obj = Utils::OpenHandle(this);
diff --git a/src/3rdparty/v8/src/heap.h b/src/3rdparty/v8/src/heap.h
index c089248..12cd295 100644
--- a/src/3rdparty/v8/src/heap.h
+++ b/src/3rdparty/v8/src/heap.h
@@ -203,6 +203,7 @@ namespace internal {
V(string_symbol, "string") \
V(String_symbol, "String") \
V(Date_symbol, "Date") \
+ V(Error_symbol, "Error") \
V(this_symbol, "this") \
V(to_string_symbol, "toString") \
V(char_at_symbol, "CharAt") \